import {
	defineStore
} from 'pinia'
// import $http from '@/common/api/request.js'
export const usecartStore = defineStore({
	id: 'cart', // id必填，且需要唯一
	state: () => {
		return {
			list: [
			],
			selectList: []
		}
	},
	getters: {
		// 判断是否全选
		checkAll() {
			return this.list.length === this.selectList.length
		},

		//合计+结算数量
		totalCount() {
			let total = {
				pprice: 0,
				num: 0
			}
			this.list.forEach(v => {
				//是否选中
				if (this.selectList.indexOf(v.id) > -1) {
					//合计
					total.pprice += v.pprice * v.num;
					//结算数量
					total.num = this.selectList.length;
				}
			})
			return total;
		}
	},

	// actions 用来修改 state
	actions: {
		// 加入购物车
		addShopCart(goods) {
			this.list.push(goods)
		},
		initGetData(list) {
			this.list = list
		},
		// 删除
		delGoods(){
			this.list = this.list.filter(v=>{
				return this.selectList.indexOf(v.id) === -1;
			})
			// uni.showModal({
			// 	content:'确定删除吗?',
			// 	success: () => {
			// 		$http.request({
			// 			url:"/deleteCart",
			// 			method:"POST",
			// 			header:{
			// 				token:true
			// 			},
			// 			data:{
			// 				goodsId:this.selectList
			// 			}
			// 		}).then((res)=>{
						
			// 			this.list = this.list.filter(v=>{
			// 				return this.selectList.indexOf(v.id) === -1;
			// 			})
			// 			// this.unCheckAlls()
						
			// 			uni.showToast({
			// 				title:'删除成功',
			// 				icon:"none"
			// 			})
						
			// 		}).catch(()=>{
			// 			uni.showToast({
			// 				title:'请求失败',
			// 				icon:'none'
			// 			})
			// 		})
			// 	}
			// })
		},
		// 全选
		checkAlls() {
			this.selectList = this.list.map(v => {
				v.checked = true;
				return v.id;
			})
		},
		// 全不选
		unCheckAlls() {
			this.list.forEach(v => {
				v.checked = false
			})
			this.selectList = []
		},
		// 全选判断
		changeNumber() {
			this.checkAll ? this.unCheckAlls() : this.checkAlls()
		},
		// 单选
		selectItem(index) {

			let id = this.list[index].id;
			let i = this.selectList.indexOf(id);
			//如果selectList已经存在就代表他之前是选中状态, checked=false,并且在selectList删除
			if (i > -1) {
				this.list[index].checked = false;
				return this.selectList.splice(i, 1);
			}
			//如果之前没有选中,checked=true , 把当前的id添加到selectList
			this.list[index].checked = true;
			this.selectList.push(id);
		}
	},


})